﻿    // Define the entry point
    $(document).ready(function () {
        // The DOM (document object model) is constructed
        // We will initialize and run our plugin here
        ExecuteOrDelayUntilScriptLoaded(screenshotPreview, "sp.js");
    });

    this.screenshotPreview = function () {

        var ctx = new SP.ClientContext.get_current();
        var webUrl = ctx.get_url();

        if (webUrl != "/")
            webUrl += "/";

        /* CONFIG */

        xOffset = 10;
        yOffset = 30;

        // these 2 variable determine popup's distance from the cursor
        // you might want to adjust to get the right result

        /* END CONFIG */
        $(".ms-rtestate-field a").hover(function (e) {
            if ($(this).attr('href') == "")
                return;
            this.t = this.title;
            this.title = "";
            var c = (this.t != "") ? "<br/>" + this.t : "";
            $("body").append("<p id='screenshot'><img src=\"" + webUrl + "_layouts/SPThumbnailExtender/MobileGenericHandler.ashx?w=320&h=240&usecache=true&doc=" + encodeURIComponent($(this).attr('href')) + "\" alt='url preview' />" + c + "</p>");
            $("#screenshot")
                        .css("top", (e.pageY - xOffset) + "px")
                        .css("left", (e.pageX + yOffset) + "px")
                        .fadeIn("fast");
        },
        function () {
            this.title = this.t;
            $("#screenshot").remove();
        });
        $("a.screenshot").mousemove(function (e) {
            $("#screenshot")
                        .css("top", (e.pageY - xOffset) + "px")
                        .css("left", (e.pageX + yOffset) + "px");
        });
    };
